package timing.jframe4l.note;

import java.util.Arrays;

/**
 * Description:
 * <br>网站：<a href="http://www.gitee.com/fengxici">Fengxici</a>
 * <br>Copyright (c),2017,Fengxici
 * <br>This program is protected by copyright laws.
 * <br>Program Name:FlowControlDemo
 * <br>Date:2018/1/3
 *
 * @author ArrayTypeDemo
 * @version 1.0
 * Created by Fengxici on 2018/1/3.
 */
public class ArrayTypeDemo {
    /**
     * 程序入口
     *
     * @param args 入口接收函数
     */
    public static void main(String[] args) {
        //可读性更强，推荐使用这种。
        int[] intArray;
        //定义数组的时候不能指定数组的长度
        int arrayInt[];
        //静态初始化
        intArray=new int[]{6,7,8,9,10};
        int[] a={1,2,3,4,5,6};
        //动态初始化 静态初始化和动态初始化不能同时使用，new int[5]{1,2,3,4,5}是不被允许的
        arrayInt=new int[5];
        //数组元素的类型是基本类型中的整数类型（byte、short、int和long），则数组元素的值是0
        //数组元素的类型是基本类型中的浮点类型（float、double），则数组元素的值是0.0
        //数组元素的类型是基本类型中的字符类型（char），则数组元素的值是'\u0000'
        //数组元素的类型是基本类型中的布尔类型（boolean），则数组元素的值是false
        //数组元素的类型是引用类型（类、接口和数组），则数组元素的值是null
        for(int i=0;i<a.length;i++){
            System.out.println("for循环数组访问"+a[i]);
        }
        for(int i:a){
            System.out.println("foreach循环数组访问"+i);
        }
        //内存中的数组

        //没有多维数组
        //定义一个二维数组
        int[][] twoArray;
        //把它当成一维数组初始化，初始twoArray是一个长度为4的数组
        twoArray = new int[4][];
        //把twoArray数组当成一维数组，遍历a数组的每个数组元素
        for(int i = 0,len=twoArray.length;i<len; i++){
            System.out.println(twoArray[i]);
        }
        //初始化twoArray数组的第一个元素
        twoArray[0]=new int[2];
        //访问twoArray数组的第一个元素所指数组的第二个元素
        twoArray[0][1]=6;
        //twoArray数组的第一个元素是一维数组，遍历这个一维数组
        for(int i =0,len = twoArray[0].length;i<len;i++){
            System.out.println(twoArray[0][i]);
        }


        //=======================Java 8 数组增强工具类 Arrays 多核CPU并发支持=================================
        int[] java8Array1= new int[]{1,5,7,9,8};
        int[] java8Array2= new int[]{6,5,3,2,4};
        //长度相等，且每个元素也一一相同
        System.out.println("两个数组是否相等："+ Arrays.equals(java8Array1,java8Array2));
        //多核CPU并发支持，parallel开头的方法
        Arrays.parallelSort(java8Array1);
        for(int i =0,len = java8Array1.length;i<len;i++){
            System.out.println(java8Array1[i]);
        }
    }
}
